/**
 * @file mystr.h
 * @author your name (you@domain.com)
 * @brief 自定义的一个简单的字符串类
 * @version 0.1
 * @date 2022-05-15
 * 
 * @copyright Copyright (c) 2022
 * 
 * 这也是一个不成熟的设计，它非常的简陋，但是能解决一些问题，但也带来了更多的问题。
 * 它没有遵循RAII规则，用户需要自己释放内存。
 * 
 * 因为它足够的简单，可以用作一个学习的案例。
 * 
 */
#ifndef MYSTR_H
#define MYSTR_H

#include <cstring>

const size_t DEFAULT_INCREMENT = 100;

class mystr
{
private:
    char *buf;
    size_t capacity;
    size_t position;
    size_t increment;
public:
    mystr(size_t increment=DEFAULT_INCREMENT);
    void append(char c);
    void append(const char *str);
    char *str();
};

#endif